#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int, char *argv[])
{
    Mat in_image, out_image;
    //读取原始图像
    in_image = imread("../girl_carton.jpg", IMREAD_UNCHANGED);
    if (in_image.empty()) {
        //检查是否读取图像
        cout << "Error! Input image cannot be read...\n";
        return -1;
    }
    //创建两个具有图像名称的窗口
    namedWindow("Origin", WINDOW_NORMAL);
    namedWindow("Gray", WINDOW_NORMAL);
    //在之前创建的窗口中显示图片
    imshow("Origin", in_image);
    cvtColor(in_image, out_image, CV_BGR2GRAY);
    imshow("Gray", out_image);
    cout << "Press any key to exit...\n";
    waitKey(); // Wait for key press
    //写入图像
    imwrite("../girl_carton_gray.jpg", out_image);
    return 0;
}

/*
enum { IMREAD_UNCHANGED = -1, // 8 位，彩色或非彩色
    IMREAD_GRAYSCALE = 0, // 8 位，灰度
    IMREAD_COLOR = 1, //未改变深度、颜色
    IMREAD_ANYDEPTH = 2, //任意深度，未改变颜色
    IMREAD_ANYCOLOR = 4, //未改变深度，任意颜色
    IMREAD_LOAD_GDAL = 8 // 使用 gdaL 驱动程序
};

enum { WINDOW_NORMAL = 0x00000000,
    //用户可以调整窗口的大小（无约束）
    //还可以将一个全屏窗口切换为常规窗口
    WINDOW_AUTOSIZE = 0x00000001,
    //用户不能调整窗口的大小，
    //窗口的大小由显示的图像所限制
    WINDOW_OPENGL = 0x00001000, // OpenGL 支持的窗口
    WINDOW_FULLSCREEN = 1,
    WINDOW_FREERATIO=0x00000100,
    //图像可任意使用（调整图像时可没有比例限制）
    WINDOW_KEE PRATIO = 0x00000000
    //调整图像时保持图像的缩放比例
};
*/